package com.yand.disk.demo.config;


import lombok.Data;
import org.springframework.beans.factory.annotation.Value;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;


/**
 * redis 配置文件 jedis实现
 */
@Configuration
@Data
public class RedisConfig {

    @Value("${jedis.host}")
    private  String host;

    @Value("${jedis.port}")
    private  int port;


    @Value("${jedis.max_active}")
    private  int MAX_ACTIVE ;
    //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例，默认值也是8。

    @Value("${jedis.max_idle}")
    private  int MAX_IDLE;

    @Value("${jedis.max_wait}")
    //等待可用连接的最大时间，单位毫秒，默认值为-1，表示永不超时。如果超过等待时间，则直接抛出JedisConnectionException
    private  int MAX_WAIT;

    @Value("${jedis.timeout}")
    //连接超时的时间　　
    private  int TIMEOUT;

    // 在borrow一个jedis实例时，是否提前进行validate操作；如果为true，则得到的jedis实例均是可用的；
    private  boolean TEST_ON_BORROW = true;

    private static JedisPool jedisPool = null;



    @Bean
    public JedisPool initJedisPool(){
        System.out.println("===>"+host +":"+port);
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(MAX_ACTIVE);
        config.setMaxIdle(MAX_IDLE);
        config.setMaxWaitMillis(MAX_WAIT);
        config.setTestOnBorrow(TEST_ON_BORROW);
        jedisPool = new JedisPool(config, host, port);

        return jedisPool;
    }





}
